Distribution of market data

ABSTRACT

Systems and methods are provided for communicating and processing market data. The market data may comprise quotes, orders, trades and/or statistics. A messaging structure allows for adding, re-ordering and/or expanding data, within the printable character set of any language. One or more delimiters are defined and used to delimit data elements within the message structure. The data is interpreted based on templates which may be disseminated prior to the sending of messages and used as an abstraction so that the meaning of data need not be conveyed in the message.

The present application is a continuation of U.S. application Ser. No.12/888,197, filed Sep. 22, 2010 entitled “Market Data Message Format,”which is a continuation of U.S. application Ser. No. 10/982,535, filedNov. 5, 2004 entitled “Market Data Message Format”, which is acontinuation-in part of U.S. application Ser. No. 10/903,826 filed Jul.30, 2004 entitled “Trade Engine Processing of Mass Quote Messages andResulting Production of Market Data”, which claimed priority to U.S.Provisional patent application No. 60/517,491 filed Nov. 5, 2003entitled “Delimited Variable Length Structure for Electronic Messages”the entire disclosures are hereby incorporated by reference.

FIELD OF THE INVENTION

Aspects of the present invention relate to a delimited message formatthat uses delimiters to demarcate data and repeating groups of data sentfrom an exchange or received by an exchange.

BACKGROUND

As the number of orders and trades increases, the distribution ofmessages can strain computer systems and networks that are used totransmit such messages. The processing of numerous messages andassociated overhead consumes bandwidth and processing time. Currentmessaging structures use fixed length, key-value paired, and/or messagemockup structures to communicate content. These current messagingstructures are inefficient due to overhead associated with padding extrabytes or use of keys or references which may be contained in themessage. Therefore, there is a need in the art for an improvedelectronic message structure.

SUMMARY OF THE INVENTION

Aspects of the invention overcomes at least the problems and limitationsof the prior art by providing systems and methods for processing marketdata through the use of a messaging structure. The messaging structuremay use delimiters to demarcate data and repeating groups of data. Thedelimiters may be single-byte control characters that allow data to beextracted using a parsing logic. A parsing algorithm may require thatbytes in a message be read in order to locate the delimiters. Themessage structure may use templates to define message types, datameaning, and data ordering. The template may be disseminated prior tothe sending of messages and used as an abstraction so that the meaningof data need not be conveyed in the message. The created messages maypresent data in the order stipulated by the templates. An applicationprocessing the messages may map data to a template and associate it withmeaning. The template may be disseminated prior to the sending ofmessages and used as an abstraction so that the meaning of data need notbe conveyed in the message. The use of templates may allow data to beadded, deleted, or re-ordered by first distributing an updated template.

The processing of market messages may be accomplished in accordance withthe techniques described in U.S. provisional patent application No.60/517,491. In various embodiments, aspects of the present invention canbe partially or wholly implemented on a computer-readable medium, forexample, by storing computer-executable instructions or modules, or byutilizing computer-readable data structures. Of course, the methods andsystems disclosed herein may also include other additional elements,steps, computer-executable instructions, or computer-readable datastructures.

The details of these and other embodiments of the present invention areset forth in the accompanying drawings and the description below. Otherfeatures and advantages of the invention will be apparent from thedescription and drawings, and from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention may take physical form in certain parts and steps,embodiments of which will be described in detail in the followingdescription and illustrated in the accompanying drawings that form apart hereof, wherein:

FIG. 1 shows a computer network system that may be used to implementaspects of the present invention;

FIG. 2 shows an embodiment of the messaging structure in accordance withan embodiment of the invention.

FIG. 3 illustrates various delimiters utilized in templates and datamessages in accordance with an embodiment of the invention;

FIG. 4 illustrates additional delimiters utilized in templates and datamessages in accordance with an embodiment of the invention;

FIG. 5 illustrates a computer implemented method of a creating messagingstructure in accordance with an embodiment of the invention; and

FIG. 6 illustrates a computer implemented method of processing marketdata in accordance with an embodiment of the invention.

DETAILED DESCRIPTION

Exemplary Operating Environment

Aspects of the present invention are preferably implemented withcomputer devices and computer networks that allow users to exchangetrading information. An exemplary trading network environment forimplementing trading systems and methods is shown in FIG. 1. An exchangecomputer system 100 receives orders and transmits market data related toorders and trades to users. Exchange computer system 100 may beimplemented with one or more mainframe, desktop or other computers. Auser database 102 includes information identifying traders and otherusers of exchange computer system 100. Data may include user names andpasswords. An account data module 104 may process account informationthat may be used during trades. A match engine module 106 is included tomatch bid and offer prices. Match engine module 106 may be implementedwith software that executes one or more algorithms for matching bids andoffers. A trade database 108 may be included to store informationidentifying trades and descriptions of trades. In particular, a tradedatabase may store information identifying the time that a trade tookplace and the contract price. An order book module 110 may be includedto compute or otherwise determine current bid and offer prices. A marketdata module 112 may be included to collect market data and prepare thedata for transmission to users. A risk management module 134 may beincluded to compute and determine a user's risk utilization in relationto the user's defined risk thresholds. An order processing module 136may be included to decompose delta based and bulk order types forprocessing by order book module 110 and match engine module 106.

The trading network environment shown in FIG. 1 includes computerdevices 114, 116, 118, 120 and 122. Each computer device includes acentral processor that controls the overall operation of the computerand a system bus that connects the central processor to one or moreconventional components, such as a network card or modem. Each computerdevice may also include a variety of interface units and drives forreading and writing data or files. Depending on the type of computerdevice, a user can interact with the computer with a keyboard, pointingdevice, microphone, pen device or other input device.

Computer device 114 is shown directly connected to exchange computersystem 100. Exchange computer system 100 and computer device 114 may beconnected via a T1 line, a common local area network (LAN) or othermechanism for connecting computer devices. Computer device 114 is shownconnected to a radio 132. The user of radio 132 may be a trader orexchange employee. The radio user may transmit orders or otherinformation to a user of computer device 114. The user of computerdevice 114 may then transmit the trade or other information to exchangecomputer system 100.

Computer devices 116 and 118 are coupled to a LAN 124. LAN 124 may haveone or more of the well-known LAN topologies and may use a variety ofdifferent protocols, such as Ethernet. Computers 116 and 118 maycommunicate with each other and other computers and devices connected toLAN 124. Computers and other devices may be connected to LAN 124 viatwisted pair wires, coaxial cable, fiber optics or other media.Alternatively, a wireless personal digital assistant device (PDA) 122may communicate with LAN 124 or the Internet 126 via radio waves. PDA122 may also communicate with exchange computer system 100 via aconventional wireless hub 128. As used herein, a PDA includes mobiletelephones and other wireless devices that communicate with a networkvia radio waves.

FIG. 1 also shows LAN 124 connected to the Internet 126. LAN 124 mayinclude a router to connect LAN 124 to the Internet 126. Computer device120 is shown connected directly to the Internet 126. The connection maybe via a modem, DSL line, satellite dish or any other device forconnecting a computer device to the Internet.

One or more market makers 130 may maintain a market by providingconstant bid and offer prices for a derivative or security to exchangecomputer system 100. Exchange computer system 100 may also exchangeinformation with other trade engines, such as trade engine 138. Oneskilled in the art will appreciate that numerous additional computersand systems may be coupled to exchange computer system 100. Suchcomputers and systems may include clearing, regulatory and fee systems.

The operations of computer devices and systems shown in FIG. 1 may becontrolled by computer-executable instructions stored oncomputer-readable medium. For example, computer device 116 may includecomputer-executable instructions for receiving order information from auser and transmitting that order information to exchange computer system100. In another example, computer device 118 may includecomputer-executable instructions for receiving market data from exchangecomputer system 100 and displaying that information to a user.

Of course, numerous additional servers, computers, handheld devices,personal digital assistants, telephones and other devices may also beconnected to exchange computer system 100. Moreover, one skilled in theart will appreciate that the topology shown in FIG. 1 is merely anexample and that the components shown in FIG. 1 may be connected bynumerous alternative topologies.

Market Data Messaging Format

A new messaging structure 200 (FIG. 2) for communicating electronic dataof any nature within the printable character set of any language isdescribed. Meaning may be associated with actual message content withoutincluding any keys in the actual messages or requiring any kind ofpositional references to data in the messages. This approach supportsflat message structures, as well as nested groups of repeatable data toany level of nested depth. A financial data message may comprise amarket data message sent from an exchange and/or orders or messagesdelivered to an exchange.

FIG. 2 illustrates one embodiment of messaging structure 200. In FIG. 2,a template 201 and a message 203 are illustrated. As shown in FIG. 2,the message structure 200 may consist of delimiters to demarcate eachattribute so that datum can be easily extracted. Templates such astemplate 201 may predefine an attribute order so that extracted datumcan be associated with meaning The use of delimiters and templates inmessaging structure 200 may enable the messaging structure to be readilyextensible.

Character “|” 206 is used to denote a delimiter in an embodiment of theinvention. Those skilled in the art will realize that many otheradditional characters may be utilized to represent a delimiter such ascharacters “[” 210 and “]” 212 and “}” 214. The delimiters may separatedata elements within a given message structure. One or more templatessuch as template 201 may be defined and disseminated to 1) indicate thenumber and nature of supported message structures (flat or nested groupsof repeatable data), as well as 2) the meaning of the data that may becommunicated within a given message structure. The delimiters used mayor may not be communicated in the templates, as well. One or moremessage structures corresponding to each template may be defined anddisseminated, carrying actual or meaningful content.

FIGS. 3 and 4 illustrate various options for delimiters to be used inmessaging structure 200 of the present invention. Those skilled in theart will realize that FIGS. 3 and 4 are not an exhaustive list of thevarious delimiters choices but are only an illustrative list. Forexample, FIGS. 3 and 4 may contain other options and may map to otheroptions (not shown) using varying multiples of characters to representthe four illustrated delimiters. The use of multiple characters fordelimiters may be less efficient but semantically the same as theoptions illustrated in FIGS. 3 and 4.

FIGS. 3 and 4 include a unique delimiters column 302 which may indicatethe number of unique characters used to build delimiters. Some of thevarious options may use multiple consecutive occurrences of onecharacter to form a delimiter. The choice of delimiter characters maynot change the format or the messaging structure 200. Considerationssuch as printability and character set may affect the actual charactersand encoding chosen. For each alternative presented, a printablecharacter may be chosen to represent each of the delimiters. Each tablein both FIGS. 3 and 4 includes a “Field Delimiter” column 304, a “GroupStart” column 306, a “Group End” column 308, a “Sample” column 310, anda “Notes” column 312. The “Sample” column 310 may include a normalizedsample. The sample may be translated into its form for each alternativepresented. In addition, FIG. 4 also includes a “Group Delimiter” column314, “Options Fields” column 316, and a “Repeating Group Column” 318.

In many of the alternatives listed in FIGS. 3 and 4, the “Group End” 308characters and the “Group Delimiter” 314 characters are the same. Afield outside the repeating group in question specifies the number ofoccurrences of the group. This may allow a parsing algorithm to takeadvantage of the predictive nature of these tags because they may not beable to depend on the delimiters themselves to uniquely demarcatemessage structure. In some cases these fields may be necessary in orderto parse the message.

The “Options Fields” 316 shown in FIG. 4 may be attached at the end ofdata messages. The “Options Fields” 316 may also be found at the end ofrepeating groups in data messages or at other places in a message and/orrepeating groups in data messages.

The delimiters defined in FIGS. 3 and 4 may be used to demarcateattributes and repeating groups. The utilization of four delimiters isdeemed optimal such as “Field Delimiter” 304, “Group Start” 306delimiter, “Group Delimiter” 314, and “Group End” 308 delimiter. The useof four delimiters may be optimal because: 1) counts for the number oftimes a group repeats may not be needed thus saving bytes andsimplifying the parsing algorithm; 2) delimiters at the end of repeatinggroups may be dropped if no data is present; 3) the parsing algorithm toextract datum may be generic for all messages; and 4) any message may beparsed without reference to message types.

Delimiters and templates may be disseminated or communicated by anymeans that allow them to be incorporated in an electronic system. Themessage structures then disseminated may be of variable length with dataelements shortened or extended in length, as well as included or notpresent on a real-time per message basis. Message structures, dependingon the choice of implementation, may be parsed without prior knowledgeof the message content, without references or keys to the content,and/or without fixed positional reference to the message structures.

One or more templates such as template 201 may be defined anddisseminated to 1) indicate the number and nature of supported messages(linear or nested groups), as well as 2) indicate the meaning of thedata that may be communicated within a given type of message. Templatesmay allow datum to be associated with meaning by 1) defining theattributes, and 2) indicating the order in which they will appear. Theuse of delimiters within a given message type may also be communicatedin its template.

Once the templates have been disseminated, messages corresponding toeach template may be built and disseminated, carrying actual content.The messages may be of variable length with data elements shortened orextended in length, as well as included or not present on a real-timebasis. Templates, and thus messages, may be changed on-the-fly so thatattributes can be added, deleted, and/or re-order as needed. Templateand message integrity may be checked per instance of receipt byvalidating message size.

In one embodiment of the invention, the messaging format detailedassumes the following: 1) messages are being passed from a sender to oneor more receivers; 2) the method of dissemination is variable; 3) twofundamental types of messages are sent, templates and data messages; 4)the data being sent can be represented in key=value pairs; 5) templatesdefine the order of data in data messages; 6) templates contain keys anddata messages contain associated values; and 7) a protocol that usesthis formatting scheme will provide needed functionality as necessary(such as including a mechanism by which to match a data message with atemplate or including a mechanism to verify message contents).

A message may consist, conceptually, of fields and repeating groups.Repeating groups may be nested and also consist of fields and repeatinggroups. In templates, a repeating group may only exist once. Inmessages, a repeating group may occur multiple times. All theseoccurrences may be consecutive.

As discussed above, messages may consist, structurally, of fields anddelimiters. Every field may be followed by one or more delimiters. Fielddelimiters may separate fields within a group or in the message. If thelast element of a message is not a repeating group, it may be followedby a “Field Delimiter” 304; otherwise it may be followed by the “GroupEnd” 308 delimiter. “Group Start” 306 delimiters may mark the beginningof a group definition in a template and a repeating group in a datamessage. “Group Delimiters” 314 do not exist in templates and separateoccurrences of a repeating group in data messages. “Group End” 308delimiters may mark the end of a repeating group and may be placed afterthe last element of the last occurrence of a repeating group. Every“Group Start” 306 delimiter may be matched by a “Group End” 308delimiter later in the message.

Message structure 200 may perform several functions such as: 1) orderattributes which convey data; 2) it provides a means for extractingspecific datum from the overall message; and/or 3) provide a method forassociating the datum with meaning Optimizing a message structure,therefore, involves ordering attributes in an efficient manner whileallowing datum to be extracted and associated with meaning in a likewiseefficient manner. An optimized message structure, moreover, may readilyallow attributes to be added, deleted or re-ordered, as well asefficiently handle attributes which either may not be present or vary inlength on a per message basis.

A fully optimized message structure may communicate only meaningfulcontent in a format that expresses the data in the smallest possiblesize. A structure for stating price, for example, may only state theprice without overhead. The format for stating the price, moreover,might be optimized by expressing it as a binary rather than stringstatement.

Message structure 200 orders attributes in a very efficient manner.Message Structure 200 may use delimiters to demarcate each attribute sodatum can be readily extracted. Message structure 200 may use templatesto pre-define attribute ordering so extracted datum can be associatedwith meaning.

Message structure 200 may carry data within the printable character setof any language. Message structure 200 supports linear strings of data,as well as nested groups of repeatable data to any level of nesteddepth. Ordering of attributes may be determined by at least fourfactors: 1) attributes which are potentially repeatable to optimizeefficiency are placed in repeating groups; 2) repeating groups arenested so that common data resides in the outer most group(s) and uniquedata resides in the inner most group(s); 3) data common to the entiremessage resides outside any repeating group; 4) attributes which may notappear often are placed at the end of a repeating group or at the end ofthe message. The last factor may allow delimiters for those attributeswithout values in a given instance to be dropped.

Template and message integrity may be checked per instance of receipt byvalidating message size. Messages may be further validated against thestructure of its corresponding template.

The advantages of the delimited structure may include: 1) efficientmessage structure that produces message sizes comparable to or betterthan an optimized fixed length structure; 2) retains the flexibility ofkey-value and mockup structures for adding, re-ordering and extendingthe length of data elements contained in messages; 3) supports lineardata strings, as well as nested groups of repeatable data to any levelof nested depth. It excels at communicating data via complex nestedgroups which optimize message size efficiency; 4) attributes can beadded, deleted, and/or re-order on-the-fly by defining and disseminatinga template and then sending messages corresponding to the giventemplate; 5) attributes can be shortened or extended in length, as wellas included or not present on a real-time per message basis; 6) messagescan be parsed without prior knowledge of the message type, as well aswithout references or keys to the content; 7) any number of templatesand/or message types can be defined, and any nature of data within theprintable character set of any language can be communicated; and 8) itis easier to optimize both up-front and over time than a fixed lengthstructure.

A further advantage of the delimited structure may include a variablelength message structure that consumes no more bytes than: 1) for lineardata strings, the number of bytes used for actual data plus one byte perdelimiter in a given message; or 2) for nested message structures, thesame number of bytes as above plus potentially X number of bytes toclose each nested group of data.

Weaknesses of fixed length message structures include the use of paddingto accommodate attributes which either may not be present or vary inlength on a per message basis. Each attribute must be padded to a fixedlength equal to the longest possible value the attribute might convey.This is needed to maintain a consistent overall fixed length structure(or consistent fixed length partitions for repeating groups) so thatdatum can be extracted using a pre-defined set of positional references.The fixed length structure, therefore, also suffers from not beingreadily extensible.

Thus, a fixed length structure would optimally state instrument, priceand quantity as:

ESZ31075005

and no structure could better optimize the message. It is improbable,however, that a fixed length structure can be as optimized as in theexample given above. Because the attributes vary in length on a permessage basis, they will have to be padded:

ESZ3-0010750000005.

Thus, the fixed length message size is inflated by a total of 11unneeded characters in this instance.

If the delimited structure described above is used instead:

ESZ3|107500|5|

ESV3C1060|1040|5|

This structure incurs an overhead of 3 control characters for delimitersand improves upon the fixed length example where padding is added.

From the perspective of optimizing message size, however, the delimitedstructure may be ultimately deemed equal to the use of an optimized fixlength structure when the structures do not include repeating groups ofdata. The constraints may include: 1) the more attributes with valuesthat will vary in length as well as the more attributes that will not bepresent in every instance, the more efficient the delimited structurewill be; and 2) the more attributes with values of constant length andalways present the more efficient the fixed length structure will be.

The following examples compare messages which communicate date and time,trading system, trading mode, instrument, price, quantity, pricevariation, order type, and origin:

20031015153015999GOESZ3-00107500000005+L4 pads with 11 characters

20031015153015999|G|O|ESZ3|107500|5|+|L|4| incurs 9 delimiters

When linear strings are thus compared, the two approaches are generallyequal with respect to message size. The delimited structure, however,will perform better than the fixed length structure when repeatinggroups are introduced. Also, the fixed length structure must always beoptimized—attributes efficiently ordered and padding kept to aminimum—if it is to perform well.

FIG. 5 illustrates a computer a messaging structure in accordance withan embodiment of the invention. First, in step 502 a template is createdthat defines the order of the plurality of fields. Next, in step 504 thetemplate may be transmitted though a network as illustrated in FIG. 1.The market data to be transmitted may be compiled in step 505. Themarket data may include a plurality of financial information such asorders, quotes or mass quotes, trades, and statistics. The financialinformation may include derivate products. Derivative products mayinclude options on futures contracts, futures contracts, futurecontracts that are functions of or related to other futures contracts,or other financial instruments that have their price related to orderived from an underlying product.

A financial data message may be created in step 506. The financial datamessage may comprise a market data message sent from an exchange and/ororders or messages delivered to an exchange. The financial data messageincludes a plurality of fields that have been separated by delimiters.The delimiters may include at least one delimiter that is used toidentify a repeated group of information. Finally, in step 508 thefinancial data message may be transmitted from an exchange or similarsystem. The transmission may be across one or more computer, audio,video or data networks.

FIG. 6 illustrates a computer implemented method of processing a marketdata message having a plurality of fields separated by delimiters inaccordance with an aspect of the invention. In step 602, a template maybe received. The template may define the order of the plurality offields of the market data message. Next, in step 604 a market datamessage may also be received. The market data message may include aplurality of fields separated by delimiters. The source of the marketdata message may be the same as the source of the template. In step 606,the market data message may be parsed to extract the fields separated bythe delimiters. The data extracted from the market data message mayinclude market data containing a plurality of orders for financialinstruments. Finally, in step 608 the data in the market data messagemay be interpreted based information such as order information includedin the template.

The embodiments described above utilize market data. In alternativeembodiments individual orders and quotes may use the same messagestructure. The messaging structure 200 of the present invention may beused in the processing of market data. The market data may contain aplurality of orders for financial instruments. The financial instrumentsmay be derivative products. Derivative products may include options onfutures contracts, futures contracts that are functions of or related toother futures contracts, or other financial instruments that have theirprice related to or derived from an underlying product. These marketdata may be received at an exchange that receives and executes orders.

The present invention has been described in terms of preferred andexemplary embodiments thereof. Numerous other embodiments, modificationsand variations within the scope and spirit of the invention will occurto persons of ordinary skill in the art from a review of thisdisclosure. For example, aspects of the invention may be used to processand communicate data other than market data.

1. A method of distributing market data using a computer, the methodcomprising: (a) collecting market data for financial instruments; (b)creating a plurality of templates that each define a variable lengthmessage structure; (c) building at the computer device a plurality ofmarket data messages that each include variable length fields separatedby delimiters and a mechanism to match each market data message with acorresponding template that defines the variable length messagestructure used in the message; and (d) disseminating from the computerdevice the plurality of market data messages.
 2. The method of claim 1,further including: disseminating the plurality of templates.
 3. Themethod of claim 1, wherein at least one delimiter is used to identify arepeated group in a template.
 4. The method of claim 1, wherein at leastone delimiter is used to identify a repeated group in a template.
 5. Themethod of claim 1, wherein (c) comprises building a market data messagethat includes a price in a binary code format.
 6. The method of claim 1,wherein (c) comprises building a market data message that includes aprice in a binary code format.
 7. The method of claim 1, wherein (c)comprises building a market data message that includes data in aprintable character set format.
 8. The method of claim 1, wherein (c)comprises building a market data message that includes a plurality oforders for financial instruments.
 9. The method of claim 1, wherein (c)comprises building a market data message that includes a mass quote. 10.The method of claim 1, wherein (c) comprises building a market datamessage that includes statistics.
 11. A computer system configured todistribute market data, the system comprising: a processor; acomputer-readable medium containing computer-executable instructionsthat, when executed by the processor, cause the system to perform thesteps comprising: (a) collecting market data for financial instruments;(b) creating a plurality of templates that each define a variable lengthmessage structure; (c) building a plurality of market data messages thateach include variable length fields separated by delimiters and amechanism to match each market data message with a correspondingtemplate that defines the variable length message structure used in themessage; and (d) disseminating the plurality of market data messages.12. The system of claim 11, wherein at least one delimiter is used toidentify a repeated group in a template.
 13. The system of claim 11,wherein at least one delimiter is used to identify a repeated group in atemplate.
 14. The system of claim 11, wherein (c) comprises building amarket data message that includes a price in a binary code format. 15.The system of claim 11, wherein (c) comprises building a market datamessage that includes a price in a binary code format.
 16. The system ofclaim 11, wherein (c) comprises building a market data message thatincludes data in a printable character set format.
 17. The system ofclaim 11, wherein (c) comprises building a market data message thatincludes a plurality of orders for financial instruments.
 18. The methodof claim 1, wherein (c) comprises building a market data message thatincludes a mass quote.
 19. The method of claim 1, wherein (c) comprisesbuilding a market data message that includes statistics.
 20. Anon-transitory computer-readable medium containing computer-executableinstructions that, when executed by a processor, cause a computer systemto perform the steps comprising: (a) collecting market data forfinancial instruments; (b) creating a plurality of templates that eachdefine a variable length message structure; (c) building a plurality ofmarket data messages that each include variable length fields separatedby delimiters and a mechanism to match each market data message with acorresponding template that defines the variable length messagestructure used in the message; and (d) disseminating the plurality ofmarket data messages.